<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<!--父组件-->
<div id="app" style="background-color:blue; width: 300px; height: 300px;padding: 20px;">
  <lk-box @box-click="boxFunc"></lk-box>
</div>

<!--子组件-->
<template id="box">
  <div style="background-color:red;width: 200px;height: 200px;">
    <button @click="btnClick">点我</button>
  </div>
</template>

<script src="../js/vue.js"></script>
<script>
  // 注册子组件
  const Box = {
    template: '#box',
    methods: {
      btnClick(){
        alert('点击了');
        const dataObj = {
          name: '秦晓',
          age: 20
        }
        // 发射事件
        // 子组件向父组件传递,第一个参数是自定义事件的名称,第二个参数是自定义事件的参数
        this.$emit('boxClick',dataObj);
      }
    },
  };

  // 父组件
  const app = Vue.createApp({
    data(){
      return {
        msg: '你好Vue3！'
      }
    },
    components: {
      // 挂载子组件
      'lk-box': Box
    },
    methods: {
      boxFunc(item){
        console.log('子组件中的按钮发生了点击');
        console.log(item);
      }
    }
  });
  // 挂载vue实例
  app.mount('#app');
</script>
</body>
</html>